require "ttWxCommon"
##############################################################################################
#
##############################################################################################
ID_Document_AddFilter = autoGenId()
ID_Document_AddNewFile = autoGenId()
ID_Document_AddExistFile = autoGenId()
ID_Document_Property = autoGenId()
class ProjectTreeView_document < Menu
	def initialize(treeView,treeitem)
		@treeView = treeView
		@treeitem = treeitem
		super()
		append(ID_Document_AddFilter,"add filter")
		append(ID_Document_AddNewFile,"add new file")
		append(ID_Document_AddExistFile,"add exist file")
		append_separator()
		append(ID_Document_Property,"property")
# event		
		evt_menu(ID_Document_AddFilter){onAddFilter};
		evt_menu(ID_Document_AddNewFile){onAddNewFile};
		evt_menu(ID_Document_AddExistFile){onAddExistFile};
		evt_menu(ID_Document_Property){onProperty};
	end
	def onAddFilter()
		@treeView.addNewItem(@treeitem,"filter")
	end
	def onAddNewFile()
		@treeView.addNewItem(@treeitem,"file")
	end
	def onAddExistFile()
	end
	def onProperty()
	end
end
##############################################################################################
#
##############################################################################################
ID_Filter_AddFilter = autoGenId()
ID_Filter_AddNewFile = autoGenId()
ID_Filter_AddExistFile = autoGenId()
ID_Filter_Delete = autoGenId()
class ProjectTreeView_filter < Menu
	def initialize(treeView,treeitem)
		@treeView = treeView
		@treeitem = treeitem
		super()
		append(ID_Filter_AddFilter,"add filter")
		append_separator()
		append(ID_Filter_AddNewFile,"add new file")
		append(ID_Filter_AddExistFile,"add exist file")
		append_separator()
		append(ID_Filter_Delete,"delete")
# event		
		evt_menu(ID_Filter_AddFilter){onAddFilter};
		evt_menu(ID_Filter_AddNewFile){onAddNewFile};
		evt_menu(ID_Filter_AddExistFile){onAddExistFile};
		evt_menu(ID_Filter_Delete){onDelete};
	end
	def onAddFilter()
		@treeView.addNewItem(@treeitem,"filter")
	end
	def onAddNewFile()
		@treeView.addNewItem(@treeitem,"file")
	end
	def onAddExistFile()
	end
	def onDelete()
		@treeView.deletItem(@treeitem)
	end
end
##############################################################################################
#
##############################################################################################
class ProjectTreeView_source < ProjectTreeView_filter
	def initialize(treeView,treeitem)
		super(treeView,treeitem)
	end
end
##############################################################################################
#
##############################################################################################
class ProjectTreeView_resource < ProjectTreeView_filter
	def initialize(treeView,treeitem)
		super(treeView,treeitem)
	end
end
##############################################################################################
#
##############################################################################################
class ProjectTreeView_folder < ProjectTreeView_filter
	def initialize(treeView,treeitem)
		super(treeView,treeitem)
	end
end##############################################################################################
#
##############################################################################################
class ProjectTreeView_extlib < Menu
	def initialize(treeView,treeitem)
		@treeView = treeView
		@treeitem = treeitem
		super()
		append(ID_ANY,"build")
		append(ID_ANY,"property")
	end
end
##############################################################################################
#
##############################################################################################
ID_RootTarget_AddExecute = autoGenId()
ID_RootTarget_AddStatic = autoGenId()
ID_RootTarget_AddShared = autoGenId()
ID_RootTarget_BuildAll = autoGenId()
ID_RootTarget_Property = autoGenId()
class ProjectTreeView_root_target < Menu
	def initialize(treeView,treeitem)
		@treeView = treeView
		@treeitem = treeitem
		super()
		append(ID_RootTarget_AddExecute,"add execute program")
		append(ID_RootTarget_AddStatic,"add static library")
		append(ID_RootTarget_AddShared,"add shared library")
		append_separator()
		append(ID_RootTarget_BuildAll,"build all")
		append_separator()
		append(ID_RootTarget_Property,"property")
# event		
		evt_menu(ID_RootTarget_AddExecute){onAddExecute};
		evt_menu(ID_RootTarget_AddStatic){onAddStatic};
		evt_menu(ID_RootTarget_AddShared){onAddShared};
		evt_menu(ID_RootTarget_BuildAll){onBuildAll};
		evt_menu(ID_RootTarget_Property){onProperty};
	def onAddExecute
		newItem = @treeView.addNewItem(@treeitem,"target",["execute"])
		if newItem then
			@treeView.addNewItem(newItem,"compile_file",[])
		end
	end
	def onAddStatic
		newItem = @treeView.addNewItem(@treeitem,"target",["static"])
		if newItem then
			@treeView.addNewItem(newItem,"compile_file",[])
		end
	end
	def onAddShared
		newItem = @treeView.addNewItem(@treeitem,"target",["shared"])
		if newItem then
			@treeView.addNewItem(newItem,"compile_file",[])
		end
	end
	def onBuildAll
		curConfig = $globalToolBar.getCurrentConfig()
		if curConfig then
			$globalTaskMgr.buildTask(curConfig)
		end
	end
	def onProperty
	end
	end
end
##############################################################################################
#
##############################################################################################
ID_Target_Delete = autoGenId()
class ProjectTreeView_target < Menu
	def initialize(treeView,treeitem)
		@treeView = treeView
		@treeitem = treeitem
		super()
		append(ID_ANY,"build")
		append(ID_ANY,"property")
		append(ID_Target_Delete,"delete")
# event		
		evt_menu(ID_Target_Delete){onDelete};
	end
	def onDelete()
		@treeView.deletItem(@treeitem)
	end
end
##############################################################################################
#
##############################################################################################
ID_File_Compile = autoGenId()
ID_File_Delete = autoGenId()
class ProjectTreeView_file < Menu
	def initialize(treeView,treeitem)
		@treeView = treeView
		@treeitem = treeitem
		super()
		append(ID_File_Compile,"compile")
		append_separator()
		append(ID_File_Delete,"delete")
		append_separator()
		append(ID_ANY,"property")
# event		
		evt_menu(ID_File_Compile){onFileCompile};
		evt_menu(ID_File_Delete){onDelete};
	end
# compile file
	def onFileCompile()
		id = @treeView.get_item_data(@treeitem)
		if id then
			$globalTaskMgr.compileFile(id)
		end
	end
# delete file
	def onDelete()
		@treeView.deletItem(@treeitem)
	end
end
##############################################################################################
#
##############################################################################################
class ProjectTreeView_source_item  < ProjectTreeView_file
	def initialize(treeView,treeitem)
		super(treeView,treeitem)
	end
end